﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Data.SQLite;
using System.Security.Cryptography;
using System.IO;
using System.Drawing;
using System.Drawing.Printing;

namespace ProductDB
{
    public partial class registration : Form
    {
        public_method pm = new public_method();
        //private SqlConnection sqlConnection = null;
        private SQLiteConnection sqliteConnection;

        public registration()
        {
            InitializeComponent();
        }

        /*
        private void button1_Click(object sender, EventArgs e)
        {
            if (!(textBox1.Text == "") && !(textBox2.Text == "") && !(textBox3.Text == "") &&
                !(textBox4.Text == "") && !(textBox5.Text == "") && !(textBox6.Text == "") && 
                !(pm.EmailExists(textBox4.Text, sqlConnection))){

                //должен быть метод mailaddressStr но будим использовать заглушку (политика брандмауэра)
                //pm.mailaddressStr("tszl2@yandex.ru", "секретный ключ =)", "ЦЗЛ2", textBox4.Text, "smtp.yandex.ru");
                int codeReg;
                Random rn = new Random();
                codeReg = rn.Next(0, 10000);
                textBox8.Text = codeReg.ToString("D4");
                button2.Enabled = true;
                
            }
            else
            {
                MessageBox.Show("Email уже существует в БД или вы оставили пустыми обязательные к заполнению строки!");
            }
        }*/
        private void button1_Click(object sender, EventArgs e)
        {
            if (!(textBox1.Text == "") && !(textBox2.Text == "") && !(textBox3.Text == "") &&
                !(textBox4.Text == "") && !(textBox5.Text == "") && !(textBox6.Text == "") &&
                !(pm.EmailExists(textBox4.Text, sqliteConnection)))
            {

                //должен быть метод mailaddressStr но будим использовать заглушку (политика брандмауэра)
                //pm.mailaddressStr("tszl2@yandex.ru", "секретный ключ =)", "ЦЗЛ2", textBox4.Text, "smtp.yandex.ru");
                int codeReg;
                Random rn = new Random();
                codeReg = rn.Next(0, 10000);
                textBox8.Text = codeReg.ToString("D4");
                button2.Enabled = true;

            }
            else
            {
                MessageBox.Show("Email уже существует в БД или вы оставили пустыми обязательные к заполнению строки!");
            }
        }



        private void registration_Load(object sender, EventArgs e)
        {
            string connectionString = ConfigurationManager.ConnectionStrings["PDATA"].ConnectionString;
            //sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["PDATA"].ConnectionString);
            //sqlConnection.Open();
            sqliteConnection = new SQLiteConnection(connectionString);
            sqliteConnection.Open();
        }

        /*
        private void button2_Click(object sender, EventArgs e)
        {
            SqlCommand command = new SqlCommand($"INSERT INTO [users] (Surname, Name, Patronymic, Email, Pass, Department, Role) VALUES (@Surname, @Name, @Patronymic, @Email, @Pass, @Department, @Role)", sqlConnection);
            command.Parameters.AddWithValue("Surname", textBox1.Text.Trim());
            command.Parameters.AddWithValue("Name", textBox2.Text.Trim());
            command.Parameters.AddWithValue("Patronymic", textBox3.Text.Trim());
            command.Parameters.AddWithValue("Email", textBox4.Text.ToLower().Trim());
            command.Parameters.AddWithValue("Pass", pm.StringToSHA512(textBox5.Text, textBox4.Text.Trim()));
            command.Parameters.AddWithValue("Department", textBox6.Text.Trim());
            command.Parameters.AddWithValue("Role", 3);

            MessageBox.Show("Вы успешно зарегистрировались в БД");
        }*/

        private void button2_Click(object sender, EventArgs e)
        {
            SQLiteCommand command = new SQLiteCommand($"INSERT INTO [users] (Surname, Name, Patronymic, Email, Pass, Department, Role) VALUES (@Surname, @Name, @Patronymic, @Email, @Pass, @Department, @Role)", sqliteConnection);
            command.Parameters.Add("@Surname", DbType.String).Value = textBox1.Text.Trim();
            command.Parameters.Add("@Name", DbType.String).Value = textBox2.Text.Trim();
            command.Parameters.Add("@Patronymic", DbType.String).Value = textBox3.Text.Trim();
            command.Parameters.Add("@Email", DbType.String).Value = textBox4.Text.ToLower().Trim();
            command.Parameters.Add("@Pass", DbType.String).Value = pm.StringToSHA512(textBox5.Text, textBox4.Text.Trim());
            command.Parameters.Add("@Department", DbType.String).Value = textBox6.Text.Trim();
            command.Parameters.Add("@Role", DbType.Int32).Value = 3;

            command.ExecuteNonQuery();

            MessageBox.Show("Вы успешно зарегистрировались в БД");
        }
    }
}
